package de.tabuma.ssoclient.logik;

import de.tabuma.ssoclient.entity.Privileg;
import java.util.*;

/**
 *
 * @author alefen
 */
public class PrivilegHashFacade {
    private static Hashtable<String,List<Privileg>> hash = new Hashtable<String, List<Privileg>>();
    public synchronized static void put(Privileg privileg, String ssoId) {
        List<Privileg> pList = hash.get(ssoId);
        if(pList==null) {
            pList = new ArrayList<Privileg>();
        }
        for(int i=0;i<pList.size();i++) {
            Privileg p = pList.get(i);
            if(p.getId().intValue()==privileg.getId().intValue()) {
                pList.set(i, privileg);
                hash.put(ssoId, pList);
                return;
            }
        }

        pList.add(privileg);
        hash.put(ssoId, pList);
    }

    public synchronized static Privileg get(int id, String ssoId) {
        List<Privileg> pList = hash.get(ssoId);
        if(pList==null) {
            return null;
        }
        for(int i=0;i<pList.size();i++) {
            Privileg p = pList.get(i);
            if(p.getId().intValue()==id) {
                return p;
            }
        }
        return null;
    }

    public synchronized static void remove(int id, String ssoId) {
        List<Privileg> pList = hash.get(ssoId);
        if(pList==null) {
            return;
        }
        for(int i=0;i<pList.size();i++) {
            Privileg p = pList.get(i);
            if(p.getId().intValue()==id) {
                pList.remove(i);
                hash.put(ssoId, pList);
                return;
            }
        }
    }

    public synchronized static List<Privileg> getList(String ssoId) {
        return hash.get(ssoId);
    }

    public synchronized static void setList(List<Privileg> pList, String ssoId) {
        hash.put(ssoId, pList);
    }
}
